home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML Authority.sea / XML Authority / Required / Samples / cml.dtd < prev    next >
Encoding:
Text File  |  2000-05-03  |  8.1 KB  |  430 lines  |  [TEXT/XMLA]

  1. <!-- Appendix A - CML DTD-1999-05-15 -->
  2. <!-- Authors:
  3.  P.Murray-Rust
  4.  H.Rzepa
  5. This DTD is fully described in Journal of Chemical Information
  6.  and Computer Science, Vol xxx, 1999, pp. xxx
  7. -->
  8.  
  9. <!-- =======================================================-->
  10. <!-- PARAMETER ENTITIES -->
  11. <!-- =======================================================-->
  12.  
  13. <!-- ======attributes found on almost all elements ==========-->
  14.  
  15. <!ENTITY % title 'title CDATA #IMPLIED'>
  16. <!ENTITY % id 'id CDATA #IMPLIED'>
  17. <!ENTITY % convention 'convention CDATA "CML"'>
  18. <!ENTITY % dictRef 'dictRef CDATA #IMPLIED'>
  19.  
  20. <!-- ======linking information ==============================-->
  21.  
  22. <!ENTITY % simpleLink 'href CDATA #REQUIRED'>
  23.  
  24. <!-- ======quantifiers and constraints on some primitives ===-->
  25.  
  26. <!ENTITY % count 'count CDATA "1"'>
  27. <!ENTITY % size 'size CDATA #IMPLIED'>
  28. <!ENTITY % rows 'rows CDATA #REQUIRED'>
  29. <!ENTITY % columns 'columns CDATA #REQUIRED'>
  30.  
  31. <!-- ======constraints on some numeric data primitives ===-->
  32.  
  33. <!ENTITY % min 'min CDATA #IMPLIED'>
  34. <!ENTITY % max 'max CDATA #IMPLIED'>
  35. <!ENTITY % units 'units CDATA #IMPLIED'>
  36. <!ENTITY % angleUnits 'units (degrees | radians) "degrees"'>
  37. <!ENTITY % unitsRef 'unitsRef CDATA #IMPLIED'>
  38.  
  39. <!-- values which may be useful in min and max attributes -->
  40. <!ENTITY % integer.zero '0'>
  41. <!ENTITY % integer.max '2147483647'>
  42. <!ENTITY % integer.min '-2147483648'>
  43. <!ENTITY % float.zero  '0.0'>
  44. <!ENTITY % float.max '8.98846567431158E307'>
  45. <!ENTITY % float.min '4.9E-324'>
  46.  
  47. <!-- ======= builtin values for any element ================-->
  48. <!ENTITY %  builtinId 'id'>
  49.  
  50. <!-- ======= builtin values for atoms ======================-->
  51. <!ENTITY %  elementType 'elementType'>
  52. <!ENTITY %  atomId 'atomId'>
  53.  
  54. <!ENTITY %  x2  'x2'>
  55. <!ENTITY %  y2 'y2'>
  56. <!ENTITY %  x3 'x3'>
  57. <!ENTITY %  y3 'y3'>
  58. <!ENTITY %  z3 'z3'>
  59. <!ENTITY %  xy2 'xy2'>
  60. <!ENTITY %  xyz3 'xyz3'>
  61. <!ENTITY %  xFract 'xFract'>
  62. <!ENTITY %  yFract 'yFract'>
  63. <!ENTITY %  zFract 'zFract'>
  64. <!ENTITY %  xyzFract 'xyzFract'>
  65. <!ENTITY %  occupancy 'occupancy'>
  66. <!ENTITY %  isotope 'isotope'>
  67. <!ENTITY %  formalCharge 'formalCharge'>
  68. <!ENTITY %  nonHydrogenCount 'nonHydrogenCount'>
  69. <!ENTITY %  hydrogenCount 'hydrogenCount'>
  70. <!ENTITY %  atomParity 'atomParity'>
  71.  
  72. <!ENTITY %  residueType 'residueType'>
  73. <!ENTITY %  residueId  'residueId'>
  74.  
  75. <!ENTITY %  atomStringBuiltin '
  76.  %elementType; | %atomId; |
  77.  %residueType; | %residueId;
  78.  ' 
  79. >
  80. <!ENTITY %  atomFloatBuiltin '
  81.  %x2; | %y2; |
  82.  %x3; | %y3; | %z3; | 
  83.  %xFract; | %yFract; | %zFract; | 
  84.  %occupancy; | %isotope; | 
  85.  %formalCharge; | %hydrogenCount; | %nonHydrogenCount; |
  86.  %atomParity;
  87.  ' 
  88. >
  89. <!ENTITY %  atomIntegerBuiltin '
  90.  %isotope; | 
  91.  %formalCharge; | %hydrogenCount; | %nonHydrogenCount; |
  92.  %atomParity;
  93.  ' 
  94. >
  95. <!ENTITY %  atomCoordinate2Builtin '
  96.  %xy2; 
  97.  ' 
  98. >
  99. <!ENTITY %  atomCoordinate3Builtin '
  100.  %xyz3; | %xyzFract;
  101.  ' 
  102. >
  103. <!-- ======= builtin values for bonds ======================-->
  104. <!ENTITY %  atomRef  'atomRef'>
  105. <!ENTITY %  builtinAtomRefs 'atomRefs'>
  106. <!ENTITY %  length  'length'>
  107. <!ENTITY %  order 'order'>
  108. <!ENTITY %  stereo 'stereo'>
  109. <!ENTITY %  atomRefs 'atomRefs CDATA #IMPLIED'>
  110.  
  111. <!ENTITY %  bondStringBuiltin '
  112.  %atomRef; | %builtinAtomRefs; |
  113.  %order; | 
  114.  %stereo;
  115.  ' 
  116. >
  117. <!ENTITY %  bondFloatBuiltin '
  118.  %length;
  119.  ' 
  120. >
  121. <!ENTITY %  bondIntegerBuiltin '' 
  122. >
  123. <!-- ======= builtin values for crystal ====================-->
  124.  
  125. <!ENTITY %  acell  'acell'>
  126. <!ENTITY %  bcell  'bcell'>
  127. <!ENTITY %  ccell  'ccell'>
  128. <!ENTITY %  alpha  'alpha'>
  129. <!ENTITY %  beta  'beta'>
  130. <!ENTITY %  gamma  'gamma'>
  131. <!ENTITY %  z  'z'>
  132. <!ENTITY %  spacegroup  'spacegroup'>
  133.  
  134. <!ENTITY %  crystalStringBuiltin '
  135.  %spacegroup;
  136.  '
  137. >
  138. <!ENTITY %  crystalFloatBuiltin '
  139.  %acell; | %bcell; | %ccell; |
  140.  %alpha; | %beta; | %gamma; |
  141.  %z;
  142.  ' 
  143. >
  144. <!ENTITY %  crystalIntegerBuiltin ' 
  145.  %z;
  146.  ' 
  147. >
  148. <!-- =======================================================-->
  149. <!ENTITY % stringBuiltin '
  150.  builtin (
  151.  %builtinId; |
  152.  %atomStringBuiltin; |
  153.  %bondStringBuiltin; |
  154.  %crystalStringBuiltin; 
  155.  ) #IMPLIED '
  156. <!ENTITY % floatBuiltin '
  157.  builtin (
  158.  %atomFloatBuiltin; |
  159.  %bondFloatBuiltin; |
  160.  %crystalFloatBuiltin; 
  161.  ) #IMPLIED '
  162. <!ENTITY % integerBuiltin '
  163.  builtin (
  164.  %atomIntegerBuiltin; |
  165.  %crystalIntegerBuiltin; 
  166.  ) #IMPLIED '
  167. <!ENTITY % coordinate2Builtin '
  168.  builtin (
  169.  %atomCoordinate2Builtin;
  170.  ) #IMPLIED '
  171. <!ENTITY % coordinate3Builtin '
  172.  builtin (
  173.  %atomCoordinate3Builtin;
  174.  ) #IMPLIED '
  175.  
  176. <!-- =======================================================-->
  177. <!-- ELEMENTS for widely used data primitives -->
  178. <!-- =======================================================-->
  179.  
  180. <!ELEMENT string (#PCDATA)>
  181. <!ATTLIST string
  182.  %title;
  183.  %id;
  184.  %stringBuiltin;
  185.  %dictRef;
  186.  %convention; 
  187. >
  188. <!ELEMENT link (#PCDATA)>
  189. <!ATTLIST link
  190.  %title;
  191.  %id;
  192.  %simpleLink; 
  193.  %convention; 
  194. >
  195. <!ELEMENT float (#PCDATA)>
  196. <!ATTLIST float
  197.  %title;
  198.  %id;
  199.  %floatBuiltin;
  200.  %min;
  201.  %max;
  202.  %units;
  203.  %unitsRef;
  204.  %dictRef;
  205.  %convention; 
  206. >
  207. <!ELEMENT integer (#PCDATA)>
  208. <!ATTLIST integer
  209.  %title;
  210.  %id;
  211.  %integerBuiltin;
  212.  %min;
  213.  %max;
  214.  %units;
  215.  %unitsRef;
  216.  %dictRef;
  217.  %convention; 
  218. >
  219. <!ELEMENT stringArray (#PCDATA)>
  220. <!ATTLIST stringArray
  221.  %title;
  222.  %id;
  223.  %stringBuiltin;
  224.  %size;
  225.  %min;
  226.  %max;
  227.  delimiter CDATA #IMPLIED
  228.  %dictRef;
  229.  %convention; 
  230. >
  231. <!ELEMENT floatArray (#PCDATA)>
  232. <!ATTLIST floatArray
  233.  %title;
  234.  %id;
  235.  %floatBuiltin;
  236.  %size;
  237.  %min;
  238.  %max;
  239.  %units;
  240.  %unitsRef;
  241.  %dictRef;
  242.  %convention; 
  243. >
  244. <!ELEMENT integerArray (#PCDATA)>
  245. <!ATTLIST integerArray
  246.  %title;
  247.  %id;
  248.  %integerBuiltin;
  249.  %size;
  250.  %min;
  251.  %max;
  252.  %units;
  253.  %unitsRef;
  254.  %dictRef;
  255.  %convention; 
  256. >
  257. <!ELEMENT floatMatrix (#PCDATA)>
  258. <!ATTLIST floatMatrix
  259.  %title;
  260.  %id;
  261.  %rows;
  262.  %columns;
  263.  %min;
  264.  %max;
  265.  %units;
  266.  %unitsRef;
  267.  %dictRef;
  268.  %convention; 
  269. >
  270.  
  271. <!ELEMENT coordinate2 (#PCDATA)>
  272. <!ATTLIST coordinate2
  273.  %title;
  274.  %id;
  275.  %coordinate2Builtin;
  276.  %unitsRef;
  277.  %dictRef;
  278.  %convention; 
  279. >
  280.  
  281. <!ELEMENT coordinate3 (#PCDATA)>
  282. <!ATTLIST coordinate3
  283.  %title;
  284.  %id;
  285.  %coordinate3Builtin;
  286.  %unitsRef;
  287.  %dictRef;
  288.  %convention; 
  289. >
  290. <!ELEMENT angle (#PCDATA)>
  291. <!ATTLIST angle
  292.  %title;
  293.  %id;
  294.  %atomRefs;
  295.  %angleUnits;
  296.  %min;
  297.  %max;
  298.  %dictRef;
  299.  %convention; 
  300. >
  301.  
  302. <!ELEMENT torsion (#PCDATA)>
  303. <!ATTLIST torsion
  304.  %title;
  305.  %id;
  306.  %atomRefs;
  307.  %angleUnits;
  308.  %min;
  309.  %max;
  310.  %dictRef;
  311.  %convention; 
  312. >
  313.  
  314. <!ELEMENT list ANY>
  315. <!ATTLIST list
  316.  %title;
  317.  %id;
  318. >
  319.  
  320. <!-- =======================================================-->
  321. <!-- ELEMENTS for chemical and crystallographic concepts -->
  322. <!-- =======================================================-->
  323. <!-- NOTE
  324.  for elements which have element-specific values for the
  325.  builtin attribute, those values are already listed as 
  326.  entities
  327. --> 
  328. <!-- =======================================================-->
  329.  
  330. <!ELEMENT molecule ANY>
  331. <!ATTLIST molecule
  332.  %title;
  333.  %id;
  334.  %count;
  335.  %dictRef;
  336.  %dictRef;
  337.  %convention; 
  338. >
  339.  
  340. <!-- ========================================================-->
  341. <!ELEMENT formula ANY>
  342. <!ATTLIST formula
  343.  %title;
  344.  %id;
  345.  %count; 
  346.  %dictRef;
  347.  %convention; 
  348. >
  349.  
  350. <!-- ========================================================-->
  351. <!ELEMENT atom ANY>
  352. <!ATTLIST atom 
  353.  %title;
  354.  %id;
  355.  %count; 
  356.   %dictRef;
  357.  %convention; 
  358. >
  359.  
  360. <!-- .......................................................-->
  361. <!ELEMENT atomArray ANY>
  362. <!ATTLIST atomArray
  363.  %title;
  364.  %id;
  365.  %dictRef;
  366.  %convention; 
  367. >
  368.  
  369. <!-- ========================================================-->
  370. <!ELEMENT bond ANY>
  371. <!ATTLIST bond
  372.  %id;
  373.  %atomRefs;
  374.  %dictRef;
  375.  %convention; 
  376. >
  377.  
  378. <!-- ========================================================-->
  379. <!ELEMENT bondArray ANY>
  380. <!ATTLIST bondArray
  381.  %id;
  382.  %dictRef;
  383.  %convention; 
  384. >
  385. <!-- ========================================================-->
  386. <!ELEMENT electron ANY>
  387. <!ATTLIST electron
  388.  %id;
  389.  %count;
  390.  %dictRef; 
  391.  %convention; 
  392. >
  393. <!-- ========================================================-->
  394. <!ELEMENT reaction ANY>
  395. <!ATTLIST reaction
  396.  %id;
  397.  %dictRef; 
  398.  %convention; 
  399. >
  400. <!-- ======================================================= -->
  401. <!ELEMENT crystal ANY>
  402. <!ATTLIST crystal
  403.  %title;
  404.  %id;
  405.  %dictRef; 
  406.  %convention; 
  407. >
  408. <!-- ======================================================= -->
  409. <!ELEMENT sequence ANY>
  410. <!ATTLIST sequence
  411.  %title;
  412.  %id;
  413.  %dictRef;
  414.  %convention; 
  415. >
  416.  
  417. <!-- ======================================================= -->
  418. <!ELEMENT feature ANY>
  419. <!ATTLIST feature
  420.  %title;
  421.  %id;
  422.  %dictRef;
  423.  %convention; 
  424. >
  425.